//package com.listeningframework.boot.codegen.database;
//
//import java.sql.ResultSet;
//import java.sql.SQLException;
//import java.util.ArrayList;
//import java.util.List;
//
//import com.listeningframework.boot.codegen.constants.JdbcTypeMapper;
//import com.listeningframework.boot.codegen.context.MetaData;
//import com.listeningframework.boot.codegen.lang.CodeGenStringUtils;
//import com.mysql.jdbc.Driver;
//
///**
// *
// * @description MYSQL Entity MetaData Loader
// *
// * @author Listening
// * @version $Id: MysqlLoader.java, v 0.1 2016年12月4日 下午5:38:32 Listening Exp $
// */
//public class MysqlLoader extends MetaLoader {
//
//    @Override
//    protected String getURL() {
//        StringBuilder builder = new StringBuilder();
//        builder.append("jdbc:mysql://");
//        builder.append(getHost()).append(":").append(getPort());
//        builder.append("/").append(getDataBase());
//        builder.append("?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&autoReconnectForPools=true");
//        return builder.toString();
//    }
//
//    @Override
//    protected String getDriver() {
//        return Driver.class.getName();
//    }
//
//    @Override
//    protected String getMetaSQL(String table) {
//        return "show full columns from " + table + ";";
//    }
//
//    @Override
//    protected List<MetaData> getMetaData(ResultSet rs) throws SQLException {
//        List<MetaData> resultList = new ArrayList<>();
//        while (rs.next()) {
//            String fieldName = rs.getString("Field");
//            String fieldType = CodeGenStringUtils.treatColumnType(rs.getString("Type"));
//            String fieldComment = rs.getString("Comment");
//
//            MetaData metaData = new MetaData();
//            metaData.setColumnName(fieldName);
//            metaData.setColumnType(fieldType);
//            metaData.setComment(fieldComment);
//            metaData.setJavaName(CodeGenStringUtils.columnFieldToJava(fieldName));
//            metaData.setJavaTypeClass(JdbcTypeMapper.getType(fieldType));
//            resultList.add(metaData);
//        }
//        return resultList;
//    }
//
//}
